как переделать фразу if ((CrossOver(bar, (Synchronize(MACDExt.Series(newSymbol.Close, parameter0.ValueInt, parameter1.ValueInt))), (Synchronize(EMA.Series(MACDExt.Series(newSymbol.Close, parameter0.ValueInt, parameter1.ValueInt), parameter2.ValueInt)))[bar])) по такому принципу :
Вашей стратегии MACD строит от синхронизированного инструмента, но это не правильно.
(MACDExt.Value(bar, newSymbolSynchronized.Close, parameter3.ValueInt, parameter4.ValueInt) > 0))
Правильно строить сначала MACD, а потом его уже синхронизировать с основным таймфреймом:
(Synchronize(MACDExt.Series(newSymbol.Close, parameter3.ValueInt, parameter4.ValueInt))[bar]
Тем кто поможет, скину алгоритм полностью, он с хорошей прибылью.